Generally, transmitting media data from the input of a transmitter to the output of a receiver in wireless video communication systems throws numerous challenges, particularly with regards to concealing visible video artifacts under poor wireless-link conditions, wireless-link outages, and video-format changes.
Frame buffers are widely used in wired and wireless video communication systems. Traditionally, frame buffer (sometimes called frame-store) is defined to be the memory that drives a video display and contains a complete frame worth of video data. With the advent of video compression the definition of frame buffer has been expanded to include all the memory storage required for video decompression and post-processing steps before display. The post-processing steps could include video scaling, de-interlacing, frame-rate conversions, and other image enhancements. In the context of video communication systems there is a further need to buffer video data as it is received over the communication link and before video decompression. This is so that latencies and non-idealities associated with the link can be mitigated, and out-of-order packet arrivals can be reconciled. This buffer is sometimes called network streaming buffer or network buffer.
While the network buffer stores video content in a coding format matching the coding format of data received over the link, such is not the case with frame buffer. The frame buffer usually stores uncompressed video pixels to aid video decompression, and in some systems alternate coding schemes (such as, RLE (Run Length Encoding) or DPCM (Differential Pulse Code Modulation)) are employed to reduce bandwidth around the memory subsystem housing the frame buffer.
FIG. 1A illustrates the organization of a network buffer and a frame buffer within the pipeline of a typical video communication receiver system. As shown in FIG. 1A, a typical video communication receiver system 110 includes an interface 111, a network buffer 112, a video decompress unit 113, a frame buffer 114, and a display 115. The interface 111 receives compressed video data via a communication link 116. Multiple frames of the compressed video data are then buffered in the network buffer 112. The compressed video data stored in the network buffer 112 are sent to the video decompress unit 113. One frame of the uncompressed video data is then buffered in the frame buffer 114 for displaying on the display 115.
In typical video communication systems, the display is driven by a buffering pipeline that operates in a simple First-In-First-Out (FIFO) fashion. Data stored in the buffering pipeline is used to buffer video content required to be played out at a future time.
FIG. 1B shows a schematic 100 illustrating a FIFO 101 used in a typical wired or wireless video communication system, such as system 110 depicted in FIG. 1A. As shown in FIG. 1B, FIFO 101 stores video frames N, N+1, N+2, . . . N+K, where N and K can be any number. As shown in FIG. 1B, while Frame N+K 102 is being written into FIFO 101, the Frame N 103 is being simultaneously read out for display. That is, the typical buffering scheme, such as shown in FIG. 1A, accumulates several frames of video before displaying. Generally, after a frame (e.g., Frame N) is displayed, it is discharged from the buffers. Because these buffers are large, they are often implemented as part of a larger and standalone memory subsystem (e.g., external SDRAM IC), outside of the wired or wireless receiver module.